昨天我們決定要做一套真正能上線的 AI 智慧助理,今天先不急著 Coding
在開始實作之前,我們需要先回答一個問題:
一個真正的 AI 智慧助理,到底需要哪些東西
如果我們把 AI 助理想像成一個「會思考、會查資料、會使用工具的數位工作者」,那麼只依賴一個語言模型,其實還不夠
今天就從整體架構開始,把這 30 天會用到的核心元件一一拆解
剛開始接觸生成式 AI 時,很容易把兩者畫上等號
但如果真的要做一個可以使用的 AI Application,架構通常還具備 LLM、RAG、Tools、Memory
所以這 30 天真正要做的,並不是「學會怎麼呼叫 LLM」
而是:
把一個 LLM 組裝成一個完整的 AI Application
任何 Application 都應該以設計思考的思維,先由使用者開始,而不是從模型開始
我們先假設有一位使用者:
「我想詢問公司的技術文件,並且希望 AI 可以幫我查資料、分析問題,甚至執行一些簡單的任務」
那麼使用流程可能會是:
這時候就會發現:
LLM 只是其中一個環節
可以理解成整個 AI 助理的「推理核心」
簡單來說就是 AI 的大腦 (理解自然語言描述、推理與思考)
但它有一個很大的限制:
LLM 並不知道我們所有的資料,也不一定知道最新資訊
這就需要下一個元件
主要先透過檢索資料,再將相關內容提供給模型
假設我們希望 AI 回答:
「公司的請假規定是什麼」
如果這個規定存在於公司內部,LLM 本身通常不會知道
我們需要先將公司文件內容切塊,並將資料進行 Embedding 並存入 Vector Database
這也就是「檢索增強生成」
這樣 AI 就不只是依靠模型本身的知識,而是可以:
根據我們提供的資料回答問題
後面將會有實際的操作來理解這個概念
有了 LLM 和資料還不夠
我們還需要告訴 AI:
「你應該怎麼工作」
這就是 Prompt,然而這部份也牽涉提示工程來準確控制 AI 的行為
因此 Prompt 不只是「問 AI 一個問題」
它其實是在定義:
後面我們會進一步實驗:
同一個問題,Prompt 不同,結果到底會差多少
到目前為止,我們的 AI 已經可以:
但它還是比較像:
一個很會回答問題的人
如果我們希望它可以「做事情」,就需要 Agent
例如使用者說:
「請幫我查一下文件中的價格,然後計算三個方案的平均值」
這時候 AI 可能需要:
Agent 的核心概念可以簡化成理解任務、判斷下一步、選擇工具、執行與取得結果
所以:
RAG 比較像「讓 AI 找資料」,Agent 則是「讓 AI 決定接下來要做什麼」
Agent 如果沒有工具,其實能力還是有限的
我們可以提供一些內建或外部工具
當使用者問:
「1000 × 1.05 的結果是多少」
Agent 可以判斷這是一個計算問題
而不是讓 LLM 自己「猜」數學答案
如果每一次對話都是獨立的
AI 每次都需要重新理解背景
但我們希望 AI 這時候就需要 Memory
最簡單的方式就是保存
再把需要的內容提供給 LLM
但這裡也會出現一個問題:
是不是把所有歷史訊息全部丟給 LLM 就好了
當然不是
因為消耗 Token 會越來越多 + Context 變長,這兩個因素會造成成本增加
再來就是重要資訊可能被淹沒
所以後面還需要思考 Context Window/Short Term Memory
今天我們認識了 AI Assistant 的主要元件
[Day 3] 學習如何將一份文件內容進行切塊
下一篇會詳細說明 RAG 運作原理